package org.funtester.performance.books.chapter03.section8;

import org.funtester.performance.books.chapter03.common.ThreadTool;

/**
 * TPS模型压测任务演示
 */
public class TestTpsModelDemo {

    public static void main(String[] args) throws InterruptedException {
        TpsThreadTask tpsThreadTask = new TpsThreadTask() {// 创建TPS模型多线程任务类
            @Override
            public void test() {
                ThreadTool.sleep(100);// 模拟业务逻辑
            }
        };
        int tps = 50;// 设置TPS值
        int rumpUpTime = 5;// 设置TPS模型的预热时间
        int totalTimes = 1000;// 设置TPS模型的总执行次数
        TpsTaskExecutor tpsTaskExecutor = new TpsTaskExecutor(tpsThreadTask, tps, rumpUpTime, totalTimes, "TPS模型测试");
        Runtime.getRuntime().addShutdownHook(new Thread() {
            @Override
            public void run() {
                tpsTaskExecutor.handleData();
            }
        });
        tpsTaskExecutor.start();// 执行压测任务
    }

}
